home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / c++-part2 / 10476 < prev    next >
Encoding:
Text File  |  1996-08-05  |  971 b   |  59 lines

  1. Path: nnrp.info.ucla.edu!usenet
  2. From: Dennis Rahaman <dennisr@ucla.edu>
  3. Newsgroups: comp.lang.c++
  4. Subject: Virtual Base Class
  5. Date: Thu, 07 Mar 1996 18:17:52 -0800
  6. Organization: UCLA
  7. Message-ID: <313F98D0.102E@ucla.edu>
  8. NNTP-Posting-Host: ts18-8.wla.ts.ucla.edu
  9. Mime-Version: 1.0
  10. Content-Type: text/plain; charset=us-ascii
  11. Content-Transfer-Encoding: 7bit
  12. X-Mailer: Mozilla 2.0 (Win95; I)
  13.  
  14. This is what I want to do:
  15.  
  16.               a
  17.             /   \
  18.            b     c
  19.             \   /
  20.               d
  21.  
  22.  
  23. class a
  24.   {
  25.   //...
  26.   };
  27.  
  28. class b : public virtual a
  29.   {
  30.   //...
  31.   };
  32.  
  33. class c : public virtual b
  34.   {
  35.   //...
  36.   };
  37.  
  38. class d : public b, public c
  39.   {
  40.   //...
  41.   };
  42.  
  43.  
  44. void f ()
  45.   {
  46.   a a1;
  47.   d* pd = (d*) &a1;  // error: can't cast virtual base to derived
  48.   }
  49.  
  50. ///////////////////////////////////////////////////////////
  51. Can someone explain why I can't cast a virtual base class to a derived 
  52. class?
  53.  
  54. What should I do instead?
  55.  
  56. Any help would be appreciated.
  57.  
  58. - Dennis
  59.